/*
 * @Author: OreoWang
 * @Email: ihc523@163.com
 * @Date: 2022-04-08 11:09:25
 * @LastEditors: OreoWang
 * @LastEditTime: 2022-05-17 14:44:54
 * @Description: 
 */


import { utils } from "../utils/utils";
import { BehaviorStatus } from "./behavior-status";

export const BehaviorEventOption = {
	node: {
		uuid: '',
		name: '',
		path: '',
	},
	component: {
		uuid: '',
		name: '',
	},
	method: '',
	data: '',
}

export type TBehaviorEventOption = typeof BehaviorEventOption;

export type TBehaviorEvents = {
	onEnter: TBehaviorEventOption,
	onEnable: TBehaviorEventOption,
	onUpdate: TBehaviorEventOption,
	onDisable: TBehaviorEventOption,
	onExit: TBehaviorEventOption,
}


export interface BehaviorEventInterface {
	onEnter: () => void;
	onExit: () => void;
	onEnable: () => void;
	onDisable: () => void;
	onUpdate: (status: BehaviorStatus) => BehaviorStatus;
}

export function CloneEventOption(){
    return utils.clone(BehaviorEventOption);
}
